// pages/profile/profile.ts
Page({
  data: {
    canIUseGetUserProfile: false, // 控制使用新版接口还是旧版获取用户信息的接口
    userInfo: {} as ICommon, // 用户信息
  },
  recordManager: {} as ICommon,
  audioManager: {} as ICommon,
  audioUrl: "",
  onLoad() {
    if (wx.getUserProfile != undefined) {
      this.setData({
        canIUseGetUserProfile: true,
      });
    }
    this.recordManager = wx.getRecorderManager();
    this.recordManager.onStop((res: ICommon) => {
      console.log("停止录音：", res);
      const { tempFilePath } = res;
      this.audioUrl = tempFilePath;
    });
    this.audioManager = wx.createInnerAudioContext({
      useWebAudioImplement: false, // 是否使用 WebAudio 作为底层音频驱动，默认关闭。对于短音频、播放频繁的音频建议开启此选项，开启后将获得更优的性能表现。由于开启此选项后也会带来一定的内存增长，因此对于长音频建议关闭此选项
    });
  },
  onShow() {
    if (typeof this.getTabBar === "function" && this.getTabBar()) {
      this.getTabBar().setData({
        selected: 3,
      });
    }
  },
  getphone(e: ICommon) {
    console.log(e);
  },
  getUserProfile() {
    // 注意：新版授权用户信息，每次调用这个API，都需要用户授权。一旦获取到用户信息，需要将授权按钮进行隐藏。
    wx.getUserProfile({
      desc: "需要获取信息进行登录", // 声明获取用户个人信息后的用途，后续会展示在弹窗中，请谨慎填写,
      success: (res) => {
        console.log("新版: ", res);
        this.setData({
          userInfo: res.userInfo,
        });
      },
    });
  },
  getUserInfo(e: ICommon) {
    console.log("旧版：", e.detail.userInfo);
    this.setData({
      userInfo: e.detail.userInfo,
    });
  },
  startRecord() {
    const self = this;
    // 1. 先通过wx.getSettings获取用户的授权情况，判断是否已经授权。
    // wx.getSettings它返回的是小程序已经向用户请求过的权限。
    wx.getSetting({
      success(res: WechatMiniprogram.GetSettingSuccessCallbackResult) {
        const record = res.authSetting["scope.record"];
        if (record) {
          self.recordManager.start({});
          // setTimeout(() => {
          //   recordManager.stop();
          // }, 50000);
        } else {
          if (record == undefined) {
            // 第一次授权: 需要弹出窗口
            wx.authorize({
              scope: "scope.record",
              success() {
                // 用户已经同意小程序使用录音功能，后续调用 wx.startRecord 接口不会弹窗询问
                self.recordManager.start({});
              },
            });
          } else if (record == false) {
            // 用户之前拒绝授权
            wx.openSetting({
              success(res) {
                console.log("++++++", res.authSetting);
                if (res.authSetting["scope.record"]) {
                  self.recordManager.start({});
                  // setTimeout(() => {
                  //   recordManager.stop();
                  // }, 50000);
                }
              },
            });
          }
        }
      },
    });
  },
  stopRecord() {
    this.recordManager.stop();
  },
  startPlay() {
    this.audioManager.src = this.audioUrl;
    this.audioManager.play();
  },
});
